package com.hundsun.s3.platform.backstage.action.frame;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;

/**
 * com.hundsun.s3.platform.backstage.action
 * @Description:主页加载时会加载此action中的一些内容：1左侧菜单list 2导航栏
 * @Author: yangjun23614
 * @Date: Created in 13:27 2018/2/6
 * V1.0 13:27 2018/2/6
 */
@Controller
//@RequestMapping(value="/back")
public class IndexAction {
    @RequestMapping(value="/index.htm")
    public void login(ModelMap model, HttpSession session, HttpServletRequest request){
        model.put("navigation", navigation());  //最上部导航栏
        model.put("menu", menu());              //左侧菜单栏
    }

    /**
     * @Description: 初始化导航栏
     * @param:
     * @return:  List<MenuTree>
     * @Author: yangjun23614
     * @Date: 14:35 2018/2/6
     * V1.0
     */
    private List<MenuTree> navigation(){
        List<MenuTree> list = new ArrayList<MenuTree>();
//        MenuTree menu = new MenuTree();
//        menu.setId("01");
//        menu.setTitle("导航1");
//        list.add(menu);
//        MenuTree menu2 = new MenuTree();
//        menu2.setId("02");
//        menu2.setTitle("导航2");
//        list.add(menu2);
        return list;
    }
    
    /**
     * @Description: 初始化左侧菜单
     * @param: 
     * @return:  List<MenuTree>
     * @Author: yangjun23614
     * @Date: 14:35 2018/2/6
     * V1.0 
     */
    private List<MenuTree> menu(){
        //二级菜单--大模块菜单
        List<MenuTree> reportFormList = new ArrayList<MenuTree>();          //统计报表菜单list，下级的小功能号101开头
        List<MenuTree> staffManagementList = new ArrayList<MenuTree>();     //服务人员管理菜单list，下级的小功能号102开头
        List<MenuTree> clientManagementList = new ArrayList<MenuTree>();    //客户管理菜单list，下级的小功能号103开头
        List<MenuTree> staffAuthList = new ArrayList<MenuTree>();            //服务人员资格认证list,下级的小功能号104开头
        List<MenuTree> testList = new ArrayList<MenuTree>();                 //测试demo，100



        /*//test--三级菜单--具体一个小功能
        MenuTree testMenu = new MenuTree();
        testMenu.setId("10001");                  //小功能的Id,方便后台选取
        testMenu.setTitle("测试功能");            //名称
        testMenu.setUrl("/back/test/rftest.htm"); //点击之后的url
        testList.add(testMenu);                  //添加到测试的上级list*/

        //reportFormList--统计报表下级菜单
        MenuTree rfMenu = new MenuTree(); //工单查询
        rfMenu.setId("10101");
        rfMenu.setTitle("工单查询");
        rfMenu.setUrl("/back/report/order.htm");
        reportFormList.add(rfMenu);
        rfMenu = new MenuTree();           //年度工单折线图
        rfMenu.setId("10102");
        rfMenu.setTitle("年度工单折线图");
        rfMenu.setUrl("/back/report/yearOrderStatisticsStackedLine.htm");
        reportFormList.add(rfMenu);
        rfMenu = new MenuTree();           //月度工单折线图
        rfMenu.setId("10103");
        rfMenu.setTitle("月工单折线图");
        rfMenu.setUrl("/back/report/monthOrderStatisticsStackedLine.htm");
        reportFormList.add(rfMenu);
        rfMenu = new MenuTree();           //部门工单月折线图
        rfMenu.setId("10104");
        rfMenu.setTitle("部门月工单折线图");
        rfMenu.setUrl("/back/report/monthOrderStatisticsDeptStackedLine.htm");
        reportFormList.add(rfMenu);
        rfMenu = new MenuTree();           //年度工单反馈等级饼状图
        rfMenu.setId("10105");
        rfMenu.setTitle("年反馈等级饼状图");
        rfMenu.setUrl("/back/report/yearOrderStatisticsBasePie.htm");
        reportFormList.add(rfMenu);
        rfMenu = new MenuTree();           //月度工单反馈等级饼状图
        rfMenu.setId("10106");
        rfMenu.setTitle("月工单反馈等级饼状图");
        rfMenu.setUrl("/back/report/monthOrderStatisticsBasePie.htm");
        reportFormList.add(rfMenu);
        /*rfMenu = new MenuTree();           //日工单反馈等级饼状图
        rfMenu.setId("10107");
        rfMenu.setTitle("日工单反馈等级饼状图");
        rfMenu.setUrl("/back/report/dayOrderStatisticsBasePie.htm");
        reportFormList.add(rfMenu);*/
        rfMenu = new MenuTree();           //绩效统计
        rfMenu.setId("10108");
        rfMenu.setTitle("绩效统计");
        rfMenu.setUrl("/back/report/achievementsQryByMonth.htm");
        reportFormList.add(rfMenu);

        //staffManagementList--服务人员管理下级菜单
        MenuTree SMMenu = new MenuTree();//客户设置
        SMMenu.setId("10201");
        SMMenu.setTitle("服务人员设置");
        SMMenu.setUrl("/back/staff/staffMuti.htm");
        staffManagementList.add(SMMenu);

        //clientManagementList--客户管理下级菜单
        MenuTree CMMenu = new MenuTree();//客户设置
        CMMenu.setId("10301");
        CMMenu.setTitle("客户设置");
        CMMenu.setUrl("/back/clientManage/multi.htm");
        clientManagementList.add(CMMenu);
        CMMenu = new MenuTree();//客户统计
        CMMenu.setId("10302");
        CMMenu.setTitle("客户统计");
        CMMenu.setUrl("/back/clientManage/investigate.htm");
        clientManagementList.add(CMMenu);

        //资格认证下级菜单
        MenuTree SAMenu=new MenuTree();//服务人员资格审查
        SAMenu.setId("10401");
        SAMenu.setTitle("服务人员资格审查");
        SAMenu.setUrl("/back/auth/staffauth.htm");
        staffAuthList.add(SAMenu);

        //将三级菜单添加到二级菜单，二级菜单添加到一级菜单
        List<MenuTree> backList = new ArrayList<MenuTree>(); //一级菜单list
        MenuTree modularMenu = new MenuTree();        //test
        /*modularMenu.setId("100");
        modularMenu.setTitle("test");
        modularMenu.setItems(testList);
        backList.add(modularMenu);*/
        modularMenu = new MenuTree();                  //将统计报表list封装到menu list并添加到一级菜单的list
        modularMenu.setId("101");
        modularMenu.setTitle("统计报表");
        modularMenu.setItems(reportFormList);
        backList.add(modularMenu);
        modularMenu = new MenuTree();                  //服务人员管理的封装
        modularMenu.setId("102");
        modularMenu.setTitle("服务人员管理");
        modularMenu.setItems(staffManagementList);
        backList.add(modularMenu);
        modularMenu = new MenuTree();                   //客户管理的封装
        modularMenu.setId("103");
        modularMenu.setTitle("客户管理");
        modularMenu.setItems(clientManagementList);
        backList.add(modularMenu);
        modularMenu = new MenuTree();                   //资格认证的封装
        modularMenu.setId("104");
        modularMenu.setTitle("资格认证");
        modularMenu.setItems(staffAuthList);
        backList.add(modularMenu);
        //一级菜单的list
        List<MenuTree> list = new ArrayList<MenuTree>();
        MenuTree menu = new MenuTree();
        menu.setId("10");
        menu.setTitle("后台管理");
        menu.setItems(backList);
        list.add(menu);//菜单树封装完成

        return list;
    }
}
